using MediatR;
using Medical.WriteApi.Dto;

namespace Medical.WriteApi.Appcontext.Command
{
	/// <summary>
	/// 创建用户命令
	/// </summary>
	public class CreateUserCommand : IRequest<UserDto>
	{
		/// <summary>
		/// 用户名（登录名，唯一，必填）
		/// </summary>
		public string UserName { get; set; } = string.Empty;
		
		/// <summary>
		/// 密码（明文，创建时会被加密存储，必填）
		/// </summary>
		public string Password { get; set; } = string.Empty;
		
		/// <summary>
		/// 邮箱（可选）
		/// </summary>
		public string? Email { get; set; }
		
		/// <summary>
		/// 真实姓名（可选）
		/// </summary>
		public string? FullName { get; set; }
		
		/// <summary>
		/// 手机号（可选）
		/// </summary>
		public string? Phone { get; set; }
		
		/// <summary>
		/// 关联的员工ID（可选，用于关联Employee表）
		/// </summary>
		public long? EmployeeId { get; set; }
		
		/// <summary>
		/// 是否激活（默认true）
		/// </summary>
		public bool IsActive { get; set; } = true;
		
		/// <summary>
		/// 角色ID列表（可选，创建用户时可以同时分配角色）
		/// </summary>
		public List<long> RoleIds { get; set; } = new List<long>();
	}
}

